Top 10k strings from Beyond Horizons (1984)(East London Robotics).tap in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TAP] (TOSEC-v2007-01-01) /

Back to the directory listing

   2 THE DISPLAY FILE
   2 THE ATTRIBUTES
   2 PEEKING AND POKING
   2 ;"You're already on the first page":
   2 ;"When you switch on,";
   2 ;"Unless you have a";
   2 ;"CORRECT"
   2 ;"       "
   2 '"To turn ";
   1 y: PRINT i,
   1 the number(0)";
   1 something like this."''"10 INPUT ""1st address"";x"'"20 INPUT ""Last address"";y"'"30 FOR i=x
   1 line No,(MSB 1st!)";
   1 j    codes.(See";
   1 in the line (LSB 1st)"
   1 i: NEXT i"
   1 i.....and so on...."
   1 h$="ABCDEF"
   1 converted to binary"
   1 characters in RAM (Cursive or   Gothic?!) and set CHARS to pointto them."
   1 bord=bord-8
   1 a$="65535"
   1 a number follows.";
   1 WHAT IS BINARY?
   1 VARIABLE ADDRESSES
   1 USING THE DISPLAY FILE
   1 USER DEFINED GRAPHICS
   1 Then 5 bytes for";
   1 TO   More";
   1 THIS IS THE END OF THE PROGRAM
   1 THE VARIABLES AREA
   1 THE SYSTEM VARIABLES
   1 THE SPARE AREA
   1 THE PRINTER BUFFER
   1 THE PERMANENT COLOURS
   1 THE MACHINE STACK
   1 THE GOSUB STACK
   1 THE BASIC PROGRAM
   1 THE ATTRIBUTE BITS
   1 SVs WHICH GIVE INFORMATION
   1 SVs NEED TO BE ABLE TO CHANGE
   1 SVs FOR MEMORY MAPPING
   1 STOPPING THE PROGRAM
   1 STEP  More";
   1 ROUTINES FOR THE CPU
   1 RAM AND ROM
   1 PROGRAMS FOR PEEKING MEMORY
   1 PIP,REPDEL & REPPER
   1 MODE & FLAGS2
   1 MICRODRIVE MAPS
   1 MEMORY MAPPING PROGRAM
   1 MEMORY LOCATIONS AND";
   1 LOOKING DIRECTLY AT MEMORY
   1 LOOKING AT MEMORY BYTES (cont)
   1 LIST OF CHAPTERS
   1 KNOW THE COMPUTER BY ITS MEMORY
   1 INTRODUCTION TO SYSTEM VARIABLES
   1 HOW TO USE THIS PROGRAM
   1 HOW TO PEEK SVs
   1 HOLDING NUMBERS IN BYTES
   1 HEXADECIMAL
   1 Functions."
   1 FOR  These are Chr";
   1 FIXED AND VARIABLE ADDRESSES
   1 FIXED ADDRESSES
   1 EXPERIMENT WITH SYSTEM VARIABLES
   1 ENTER Chr=end of line";
   1 END OF CHAPTER
   1 EMERGENCY PROCEDURE
   1 EDITING AREA
   1 DON'T LOSE TRACK
   1 CLS    Codes";
   1 CHANNEL INFORMATION
   1 CHANGING MEMORY POSITIONS
   1 BeyondHor 
   1 BITS AND BYTES
   1 AND  WORKSPACE
   1 ADDRESSING THE MEMORY
   1 ADDRESS LINES AND DATA LINES
   1 A VERY USEFUL PROGRAM
   1 A QUICK TRIP THROUGH MEMORY
   1 A NOTE ON PROCEDURE
   1 A NOTE ON HEX
   1 =    page 183 to 188)";
   1 ;bin;" is too high for 2 BYTES"
   1 ;"you switch on. They";
   1 ;"you enter your program";
   1 ;"you can affect the";
   1 ;"where one area ends";
   1 ;"whenever required."
   1 ;"way the computer";
   1 ;"variables areas grow";
   1 ;"usually 23755."
   1 ;"uses the next 8k"
   1 ;"used, so forget about";
   1 ;"used to keep track of";
   1 ;"use.(eg for an INPUT)"
   1 ;"ulator stack to the";
   1 ;"ulations."
   1 ;"to use it properly."
   1 ;"to know Machine Code";
   1 ;"to go ON is always";
   1 ;"to control input from";
   1 ;"this area will not be";
   1 ;"this area uses no";
   1 ;"they push the calc";
   1 ;"these locations (in";
   1 ;"the top of the calc-";
   1 ;"the paper colour.";
   1 ;"the most recent GOSUB."
   1 ;"the length and content";
   1 ;"the keyboard and out-";
   1 ;"the first one to come";
   1 ;"the current line of";
   1 ;"the addresses where";
   1 ;"the ULA, which creates";
   1 ;"the TV picture."
   1 ;"the System Variables."
   1 ;"the SYSTEM VARIABLES";
   1 ;"the PRINTER BUFFER and";
   1 ;"the Operating System.";
   1 ;"the OPERATING SYSTEM."
   1 ;"the INK colour (numbered";
   1 ;"the CPU. You need";
   1 ;"the CPU, and READ by";
   1 ;"text to be printed."
   1 ;"temporarily holding";
   1 ;"stack towards the M/C";
   1 ;"spare. Each byte from";
   1 ;"spare RAM. When RAM is";
   1 ;"so not affected by NEW"
   1 ;"shown on the screen."
   1 ;"screen, for example,";
   1 ;"routines. The last one";
   1 ;"put to the screen";
   1 ;"pages, SVs for memory";
   1 ;"page 165 for a Memory";
   1 ;"operates."
   1 ;"of the BASIC program,";
   1 ;"of the BASIC Program."
   1 ;"numbers from GOSUB";
   1 ;"numbers during calc-";
   1 ;"number of variables";
   1 ;"number of bytes."
   1 ;"not change. The TV";
   1 ;"must keep track of";
   1 ;"most of the RAM is";
   1 ;"memory in the rest of";
   1 ;"memory areas start or";
   1 ;"mapping are shown as";
   1 ;"it. It uses no bytes";
   1 ;"is a notepad for";
   1 ;"into higher addresses."
   1 ;"instructions about INK";
   1 ;"information by the";
   1 ;"in the examples here."
   1 ;"hold any line being";
   1 ;"held, and so on."
   1 ;"given a name."
   1 ;"full, the stacks meet."
   1 ;"forward";
   1 ;"for standard letters";
   1 ;"for binary number"
   1 ;"first 6k of RAM.The";
   1 ;"first 16384 (16k)";
   1 ;"f=forward b=back i=index"
   1 ;"entered or edited."
   1 ;"end. Each SV has been";
   1 ;"design of the circuit";
   1 ;"dealt with here."
   1 ;"contents are always";
   1 ;"constant change) among";
   1 ;"called by ROM routines";
   1 ;"bytes. It expands as";
   1 ;"bytes unless it is in";
   1 ;"bytes and expands to";
   1 ;"by the CPU."
   1 ;"bottom of the MACHINE";
   1 ;"board and ULA, and";
   1 ;"being used, this holds";
   1 ;"because they change."
   1 ;"because the addresses";
   1 ;"at all."
   1 ;"as you go on."
   1 ;"as on the keyboard.)"
   1 ;"areas of memory does";
   1 ;"area always occupies";
   1 ;"are written into ROM"
   1 ;"are in RAM (not ROM)";
   1 ;"are held there and are";
   1 ;"are fixed."
   1 ;"are excellent on the Spectrum.  POKEing direct to thescreen is not often worthwhile."
   1 ;"and the size depend on";
   1 ;"and the next begins."
   1 ;"and pushes other areas";
   1 ;"and printer."
   1 ;"and PAPER colour,";
   1 ;"always needs the same";
   1 ;"always goes back to";
   1 ;"also grows into the";
   1 ;"addresses."
   1 ;"a sort of workshop for";
   1 ;"_______";
   1 ;"Whole numbers only please":
   1 ;"VARIABLES (SVs) are";
   1 ;"Try entering your own numbers,  starting with low ones."''"Can you predict what the BITS   will show?"
   1 ;"Try entering 2^0, 2^1, 2^2.........2^15.(See your manual page 65if you don't understand ""^"")"
   1 ;"This occupies the";
   1 ;"This is a notepad for";
   1 ;"This holds return line";
   1 ;"This file holds";
   1 ;"They are fixed by the";
   1 ;"These keep changing";
   1 ;"These areas form";
   1 ;"These are loaded with";
   1 ;"The size of these";
   1 ;"The size of areas of";
   1 ;"The next 3 specify the";
   1 ;"The machine stack";
   1 ;"The highest number which can be held by one BYTE is 255. But 0  is also a number, so there is a maximum of 256 numbers."
   1 ;"The first section deals with    those areas of memory with fixedaddresses. They are always in   the same place. The second part deals with those areas of memorywhich vary in both size and     location."
   1 ;"The first 7k contains";
   1 ;"The final 1k holds a";
   1 ;"The addresses of the";
   1 ;"The WORKSPACE uses no";
   1 ;"The ROM occupies the";
   1 ;"The Operating System";
   1 ;"The EDIT area uses 3";
   1 ;"The CALCULATOR STACK";
   1 ;"The BASIC INTERPRETER";
   1 ;"The 1st 3 bits specify";
   1 ;"Some of the SYSTEM";
   1 ;"STARTS";
   1 ;"STACK is loaded with 0";
   1 ;"ROM, the DISPLAY";
   1 ;"RAM depend on the size";
   1 ;"PLEASE WAIT"
   1 ;"Operating System when";
   1 ;"OFF. That's why RETURN";
   1 ;"Now POKEing ATTRIBUTES with ";a$:
   1 ;"Notice that a complete byte mustbe written each time so anythingalready in that byte gets rubbedout.        "
   1 ;"Next time you press f, this     program will stop running.":
   1 ;"Microdrive fitted,";
   1 ;"Microdrive fitted this";
   1 ;"Look at your manual";
   1 ;"Its first address is";
   1 ;"It keeps a note of";
   1 ;"It is written to by";
   1 ;"It is not";
   1 ;"In the following";
   1 ;"If you change them,";
   1 ;"If the printer is";
   1 ;"FLASH, BRIGHT etc."
   1 ;"FILE, the ATTRIBUTES,";
   1 ;"END AT";
   1 ;"Computers can count up to 15 on four BITS. The contents of each eight-BIT BYTE can therefore be described by only 2 HEX symbols."
   1 ;"Chr 14 + 5 bytes";
   1 ;"Can you find the highest number which can be held in one BYTE?"
   1 ;"Can you find the highest number that can be held by TWO BYTES?"
   1 ;"CONTINUE"
   1 ;"CONT to continue":
   1 ;"CHARACTER GENERATOR.";
   1 ;"Both the first address";
   1 ;"Bit No."
   1 ;"Bit 7 is 1 for FLASH and";
   1 ;"Bit 6 is set at 1 for";
   1 ;"Binary";
   1 ;"BRIGHT and 0 for normal";
   1 ;"As the BASIC and";
   1 ;"All the bit patterns";
   1 ;"Address=":
   1 ;"76543210  76543210":
   1 ;"21 bytes. It is used";
   1 ;"168 bytes above RAMTOP";
   1 ;"0 for normal"
   1 ;" press  ";
   1 ;" a page press  ";
   1 ;" a page press     ";
   1 ;" WORKSP";
   1 ;" VARS  "
   1 ;" STKBOT";
   1 ;" PROG  ";
   1 ;"  SYSTEM VARIABLES  
   1 ;"   SPECTRUM MEMORY INTRODUCED   "
   1 ;"       ";
   1 ;"       ":
   1 ;"           "
   1 ;"                                ":
   1 ;"                                "
   1 ;"           
   1 :     Chr";
   1 2nd 2 bts=No of bytes";
   1 23627"" is   treated as a number, so you can use it in Expressions and"'"
   1 23627 + (256*
   1 2    Character";
   1 2     Character";
   1 1st 2 bytes hold";
   1 16384+j+k*2056+j*32+i*256,128/2^i"
   1 14 means";
   1 0 1 1 1 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 6 6 7 7 7 8 8 9 9 9 9 9 9 101010101011110   
   1 0    Codes"
   1 0     Codes"
   1 ,"11",6200
   1 ,"11",1000
   1 ,"10",6100
   1 ,"10",6050
   1 ,"10",6000
   1 ,"10",5950
   1 ,"10",5890
   1 )'"WORKSP= ";
   1 )'"VARS  = ";
   1 )'"UDG   = ";
   1 )'"STKEND= ";
   1 )'"STKBOT= ";
   1 )'"RAMTOP= ";
   1 )'"PROG  = ";
   1 )'"P-RAMT= ";
   1 )'"ELINE = ";
   1 )"'"If you POKE MODE, it will have  no lasting effect.So how can youspecify upper or lower case for INPUT statements in the middle  of a program?"
   1 (a+1)*256"
   1 '''"On occasions you will be asked  to interfere with the operating system. If you get lost and cantrestore normality, GOTO 999 willusually fix it. If not, you may have to reload."
   1 '''"Bytes 22528 to 23296 are scannedfor colour and other display    information. Each byte controls a character-sized square on the screen. The layout is in addressorder."
   1 '''"        
   1 ''"So if you know what memory (ROM or RAM) contains, you are well  on the way to understanding yourcomputer."
   1 ''"GOTO 999 will get you back to   normal."
   1 ''"10 PRINT 
   1 ''"1  Introduction and instructions"
   1 '"and RUN again. This non-stop    scroll can be very useful."
   1 '"Your mapping program should do  something like this: If you wantto look at it, enter LIST 5720"
   1 '"You will have noticed that afteryou POKEd the ATTRIBUTE bytes,  the screen colours reverted to  normal as soon as anything was  overprinted."
   1 '"You should now find a much more positive Beep when you touch a  key."
   1 '"You should now be happy enough  with the concept of system"'"variables and you should start  exploring them on your own."
   1 '"You have seen that the first twobytes (23755-6) hold the first  line number. Try POKE 23756,0   and LIST. Can you edit line 0?"
   1 '"You have seen that 16 BITS can  hold 65536 numbers."
   1 '"You can find out how much memoryyou have used at any time, how  much is program, how much is"'"variables, and how much is spare"
   1 '"You can PEEK a lot of SVs to    find out what is going on. Some of the most useful are those"'"mentioned in chapter 5 giving   the addresses of boundaries"'"between memory areas."
   1 '"Write a program to print out allthe SVs mentioned in Chapter 5."''"How much spare memory is there?"
   1 '"Whenever this occurs, the main  program stops RUNning and a STOPreport appears."
   1 '"When you want the number from   two bytes, eg VARS, type"''"PRINT 
   1 '"When you switch the Spectrum on,the CPU starts to read, BYTE by BYTE, from the beginning of     memory onwards."
   1 '"When a number is put onto these lines, the BYTE whose address isheld by the ADDRESS LINES is    called, either for READING FROM or WRITING TO."
   1 '"When a computer appears to be   intelligent, it is because the  CPU is reading a clever program from memory."''"So the interaction between CPU  and memory is the basis of"'"computing."
   1 '"Using the 
   1 '"Use the program to print out    the first 20 addresses of ROM   with their contents."
   1 '"Unfortunately the bytes are not laid out in numerical sequence  from top to bottom."'"When you press ENTER, 255 will  be POKEd into each byte in turn and you will see how they are   arranged."
   1 '"Try turning forward and back.   You cannot change the chapter   without returning to the index."
   1 '"Try them both now."
   1 '"Try POKEing these with a few    numbers."
   1 '"Try POKE 23562,1"'"This speeds up the repeat key   speed."'"If you dare, first set PIP to 1,(ie. POKE 23609,1) then try..."'"POKE 23561,1"'"You will need a very delicate   touch to set it to rights again!"
   1 '"Try CLEAR and CONT. Notice how  bytes between VARS and ELINE arelost."
   1 '"To return to the ";
   1 '"This will stop scrolling as soonas SCR CT reaches 1. But now    enter...."'"20 IF 
   1 '"This program will POKE the byteswith any number you choose. Try a few out now."
   1 '"This chapter runs through the   memory from Address 0 to Address65535 so that you know where    everything is."
   1 '"They occupy addresses 23552 to  23733. When the computer is"'"switched on they are all set to standard numbers."
   1 '"The SVs are an integral part of the OPERATING SYSTEM and the    numbers they hold are referred  to constantly by the CPU as it  carries out its routines."
   1 '"The CPU must have a system for  locating each BYTE in memory, - all 65536 of them."
   1 '"The CPU is a highly ingenious   device but it does not think."''"""All"" it can do is carry out theinstructions it finds in memory."
   1 '"The BASIC commands  ";
   1 '"The ATTRIBUTE bytes get their   orders from System Variables"'"(ATTRP at 23693, MASKP at 23694 ATTRT at 23695 & MASKT at 23696)"
   1 '"THIS IS MOST USEFUL FOR PROGRAMSWITH LOTS OF INPUTS, WHERE YOU  DONT NEED LOWER CASE."'"By the way, F,B & I 
   1 '"Sometimes you are invited to    enter your own programs or to   try a few experiments."
   1 '"Some of the  remaining 16 pins  determine whether DATA is being READ or WRITTEN. Until you come to write machine code, however, it is necessary only to grasp   that it does work, not yet HOW  it works."
   1 '"So you will now understand why  16 of the CPU's soldered"'"connections to the circuit boardare ADDRESS LINES!"
   1 '"So if you want to intervene     directly in the memory, you willhave to learn to count in BINARY"
   1 '"So each BYTE is given its own   permanent number, - an ADDRESS."
   1 '"SCR CT at 23692 controls the    scrolling. In effect it counts  down from 23 until it reaches 1,when it stops. To watch it in   action, enter this program..."
   1 '"Remember that 255 is the maximum"
   1 '"Remember that ""
   1 '"POKEing an address means puttinga number into that address."
   1 '"POKEing SVs must be done with   great care, particlularly the   1st type, as you can crash the  system. You cannot damage the   computer, and the system can be reset by unplugging."
   1 '"POKE 23675,0:POKE 23676,91"'"(P Buffer address=23296=91*256) (23675-23676 are UDG SVs.)"
   1 '"PEEK and POKE give you enormous power over the computer."
   1 '"Notice that the ATTRIBUTE bytes retain the same numbers on the  screen until overprinted. ie thecontents of the SVs are not seen"'"until the system PRINTs"
   1 '"Note that the expression ""PEEK  23728"" is considered to be a"'"number. Try entering ""PRINT PEEK23728*2"""
   1 '"Most of the explanations given  in the manual for each system   variable are enough to enable   you to experiment with them."''"Familiarity with SVs is a major step beyond BASIC and towards a deeper understanding of your    computer."
   1 '"MODE, at address 23617, tells   the system what mode the cursor should be in;(
   1 '"Learning about your computer's  memory is the first major step  beyond BASIC."''"BEYOND HORIZONS will help you   take that step."
   1 '"LAST K is held among SVs becauseit must change constantly."'"PIP is in SVs so that the user  can change it if he wants to.   It could have been put in ROM!"
   1 '"It starts with the Sinclair ROM which, step by step, sets up a  usable system."
   1 '"It is not too difficult to look at the numbers held in a series of bytes and understand their   significance."
   1 '"It carries out every instructionit reads. Even ""0"" is read and  loaded into one of the CPU's"'"registers. 0 is, in effect, an  instruction to the CPU to read  the next BYTE."
   1 '"It can only carry out one tiny  instruction at a time."
   1 '"In BASIC, PEEKing an address    means looking at the number"'"stored in that address."
   1 '"If you want to it is not too    difficult to write programs to  get over the problem of the odd screen layout, but they need a  lot of arithmetic."''"This one draws a line across thescreen:"
   1 '"If you simply wish to carry on, enter 
   1 '"If you set BIT 3 of FLAGS2"'"(at 23658) the system will stay in CAPS LOCK until you set BIT 3back to 0. POKE  it with 8 now."
   1 '"If you followed the last page,  you have moved the User Defined Graphics to the Printer Buffer  and moved RAMTOP up to 65535,   giving a little more room for   variables and program. Turn backtwo pages to the Mapping programto check that UDG and RAMTOP    addresses have changed, and try Chapter 5 to make sure the"'"Graphics still work OK."
   1 '"If you don't mind reloading, trymessing around with other memoryarea SVs. If you have already   read Chapter 11, try changing   PROG so that RUN starts at line 1000 instead of line 999 in thisprogram."
   1 '"Enter the following program,    which prints out the first 40   bytes of the BASIC area.  (Make sure there are no other program lines with numbers less than 10)"
   1 '"Each one of the 6k Display File bytes corresponds to a position on the screen. Try POKEing a fewaddresses from 16384 to 22527   with different numbers."''"CONT to continue"
   1 '"Do not, however, PEEK and POKE  SVs in your programs when BASIC commands will do just as well" 
   1 '"Consider these two types of SVs:"'"LAST K (23560) holds character  code of key last pressed."'"PIP (23609) specifies length of the keyboard blip."
   1 '"Can you use the same method to  create line numbers above 9999? What is the highest line number that will LIST and RUN?"
   1 '"Calculate the value of VARS now.The correct answer is around    64200 but it changes slightly asyou go through this program."
   1 '"CHANS = ";
   1 '"By POKEing these SVs we can get the system to assume that the   areas of memory start in odd    places. This is a simple example"
   1 '"But if you have been RUNning    your own program or messing     around in some way and  wish to return to where this program    stopped, enter 
   1 '"Before proceeding be sure you   know the procedure for leaving  and returning to the program as explained in Chapter 1."
   1 '"Because of this all numbers are converted to ""BINARY"" before    being stored, and converted backinto DECIMAL before being       displayed."
   1 '"BEYOND HORIZONS has chapters andpages. You have already learned how to choose a chapter."
   1 '"At the moment this program is   not using the byte whose addressis 23728. Enter the following:"
   1 '"At the end of each page you can go back to the previous page, onto the next one, or return to   the index" 
   1 '"As you can see, PEEK 23728 is   now 110....Because 110 is what  you POKEd into it."
   1 '"As a demonstration, we will     displace CHARS by 1 character (8bytes). Enter..."''"POKE 23606,8"
   1 '"All the SVs are listed on pages 173 to 176 of your manual. Referto this list as you go along."''"These chapters demonstrate the  most useful SVs and show you howto experiment with the rest."
   1 '"Addresses are held in 2 bytes.  The Least Significant Byte comes
   1 '"A number of SVs specify the way the system should behave. Enter:"''"POKE 23609,100 then CONT"
   1 '"A BIT can only hold two numbers: - 0 and 1!"
   1 '"8 more of the CPU's soldered    connections carry the DATA, theygo HIGH or LOW according to the BITS in the BYTES and REGISTERS."
   1 '"2 Change UDG to point elsewhere-say the Printer Buffer(otherwisewe'll be poking UDGs into the   machine stack, and probably     crash!). Enter..."
   1 '"1 To put RAMTOP at P-RAMT(P-RAMTis ""Physical Ram Top"" the last  byte in memory), enter either:"'"POKE 23730,255 or  CLEAR 65535"
   1 '"(To return here after entering  each line, use GOTO 999)"
   1 "f+ENTER to avoid RUNning";
   1 "You will be asked to enter      your own programs. Your line    numbers can be anything from    1 
   1 "You must remember the highest   numbers which can be held by 1  BYTE and 2 BYTES. Write them    down when you know them."
   1 "When you switch on, the CPU     starts to READ the memory from  the beginning to the end and    obeys EVERY INSTRUCTION IT FINDS"
   1 "When you have completed this    chapter, have a look at AppendixE (page 219) of the Spectrum    manual."
   1 "When counting the fingers from 9upwards, they would have called them 9,?,?,?,?,?,?,10."
   1 "Try entering 1*256, then 2*256 and so on."
   1 "This technique is used a great  deal in the following chapters."
   1 "This is the program:"''"
   1 "There is absolutely no way the  memory can retain numbers exceptas combinations of HIGH and LOW BITS organised into BYTES."
   1 "There follows a practical demon-stration of BINARY in action."
   1 "The smallest element of  memory is a BIT. A BIT is a point whichcan hold an electrical charge.  The electrical charge held by a BIT can be either HIGH or LOW."
   1 "The same circuitry is used for  communicating with both ROM and RAM. It's just MEMORY as far as the CPU is concerned.";
   1 "The number 0 is stored there,   so PEEK 23728=0":
   1 "The next page shows the machine counting, starting from 0, in   both decimal and binary."
   1 "The ONLY   differences are that ROM doesn'tget rubbed out when you  switch off and if you WRITE TO ROM it  will have no effect."
   1 "Text, numbers, instructions,    variables, routines, graphics   and anything else you might everwant to put into the computer   must be converted to BYTE-sized groups of HIGH and LOW BITS."
   1 "THE PROGRAM HAS NOW STOPPED":
   1 "PRINT PEEK 23728  then ";
   1 "Now enter:":
   1 "Now enter the following:"'" POKE 23728,110  then CONT":
   1 "Notice that it is normal to     number the BITS from 0 to 7 fromright to left."
   1 "Machine code programmers have toenter their programs BYTE by    BYTE. Any number above 255 has  to be broken down into separate BYTES before it can be entered."
   1 "It is extremely tedious to entereverything in BINARY (all those ones and noughts!) so a system  called HEXADECIMAL is used."
   1 "It is also often necessary to   know which BITS are HIGH and    which are LOW."
   1 "If you did not succeed, enter   and RUN the program now. Don't  forget ""GOTO 999"" to return."
   1 "If a BIT is HIGH the CPU reads  it as a 1. If LOW, it is read   as 0.";
   1 "If Adam and Eve had had eight   fingers on each hand, our basic counting unit would probably nowbe 16 instead of 10."
   1 "Hold down f to continue program."
   1 "HEX people have 16 fingers. Theycall them"''"1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10"
   1 "GOTO 999 to get back here"'"afterwards.":
   1 "Enter to break.f+Enter to Cont";
   1 "Enter a number(or just ENTER to continue)";
   1 "Enter a number (or just ENTER to continue)";
   1 "Enter a number (or just ENTER   to continue)";a$
   1 "Enter Chapter you require ";
   1 "ENTER to STOP then CONT to rerun, or f+ Enter to proceed ";
   1 "ENTER to RUN.f+ENTER to CONT ";
   1 "Compare the DECIMAL number with the BINARY pattern."
   1 "Compare decimal with HEXADECIMAL"
   1 "Can you see the reason for the  BIT-numbering system of 0 to 7?"
   1 "CONT to continue":
   1 "9  SVs for mapping memory."
   1 "8  System variables-Introduction"
   1 "7  The Attributes"
   1 "6  The Display File"
   1 "5  How the memory is organised"
   1 "4  ADDRESSING the memory"
   1 "3  How the computer counts"
   1 "2  CPU needs RAM"
   1 "16 would then be written ""10"""
   1 "11 Looking at memory bytes"
   1 "10 PEEKing & POKEing SVs"
   1 "''"You should now enter your own   program for PEEKing a series of addresses in number order."''"Use a FOR.....NEXT loop and makeit ask you for the first addressand the last address."
   1 "''"The PEEK program should look"'"
   1 "''"CHARS at 23606-7 tells the"'"system where in ROM to find bit-patterns for the characters. Butyou can set up your own"'"
   1 """'"30 GOTO 10"
   1 " PRINT PEEK 23728  then CONT":
   1 " BITS are organised into   groups of eight. These groups   are called BYTES."
   1  the Most Significant Byte"''"So to find the value of,eg,VARS (at addresses 23627 & 23628, youmust calculate as follows:"
   1  routine saves time (see manual page 60). The  program should be:"''"10 
   1  means MOST SIGNIFICANT BYTE 
   1  means LEAST SIGNIFICANT BYTE"
   1  length of ln 20";
   1  form of 20 (cont)";
   1  f,b & i!"
   1  even if you cant   read what you are writing."''"Now press ENTER (or f & ENTER toescape this page.)"
   1  These 3 are binary";
   1  Then Chr 14 plus";
   1  POKE 23692,32"
   1  Next line";
   1  East London Robotics 1983"
   1  = ";bin;"     "
   1  8,9,10,11,12,13,14,15,16"
   1  5 more bytes giving";
   1  20 in binary."
   1    8,9, A, B, C, D, E, F,10"
   1         BEYOND  HORIZONS